src/ostbuild/pyostbuild/builtin_prefix.py \
src/ostbuild/pyostbuild/builtin_resolve.py \
src/ostbuild/pyostbuild/builtin_init.py \
- src/ostbuild/pyostbuild/builtin_status.py \
src/ostbuild/pyostbuild/builtins.py \
src/ostbuild/pyostbuild/filemonitor.py \
src/ostbuild/pyostbuild/fileutil.py \
parser = argparse.ArgumentParser(description=self.short_description)
parser.add_argument('--prefix')
parser.add_argument('--src-snapshot')
+ parser.add_argument('--start-at')
parser.add_argument('--fetch', action='store_true')
parser.add_argument('components', nargs='*')
components = []
for component in self.snapshot['components']:
components.append(component['name'])
+ if args.start_at:
+ idx = components.index(args.start_at)
+ components = components[idx:]
else:
components = args.components
args = [qemu, '-kernel', kernel, '-initrd', initramfs,
'-hda', self.qemu_path, '-m', memory, '-append', extra_args]
+ log("Running: %s" % (subprocess.list2cmdline(args), ))
os.execvp(qemu, args)
builtins.register(OstbuildPrivhelperRunQemu)
orig_src = component_meta['src']
did_expand = False
- for (vcsprefix, expansion) in self.manifest['vcsconfig'].iteritems():
+ for (vcsprefix, expansion) in self.snapshot['vcsconfig'].iteritems():
prefix = vcsprefix + ':'
if orig_src.startswith(prefix):
result['src'] = expansion + orig_src[len(prefix):]
def execute(self, argv):
parser = argparse.ArgumentParser(description=self.short_description)
parser.add_argument('--manifest', required=True)
- parser.add_argument('--fetch', action='store_true')
parser.add_argument('--fetch-patches', action='store_true')
parser.add_argument('components', nargs='*')
self.parse_config()
- self.manifest = json.load(open(args.manifest))
- self.prefix = self.manifest['prefix']
+ self.snapshot = json.load(open(args.manifest))
+ self.prefix = self.snapshot['prefix']
- snapshot = copy.deepcopy(self.manifest)
- components = map(self._resolve_component_meta, self.manifest['components'])
- snapshot['components'] = components
+ components = map(self._resolve_component_meta, self.snapshot['components'])
+ self.snapshot['components'] = components
- if args.fetch:
- if len(args.components) == 0:
- fetch_components = map(lambda x: x['name'], component_source_list)
- else:
- fetch_components = args.components
- for component_name in fetch_components:
- found = False
- for component in components:
- if component['name'] == component_name:
- found = True
- break
- if not found:
- fatal("Unknown component %r" % (component_name, ))
- (keytype, uri) = vcs.parse_src_key(component['src'])
- mirrordir = vcs.ensure_vcs_mirror(self.mirrordir, keytype, uri, None)
- log("Running git fetch for %s" % (component['name'], ))
- run_sync(['git', 'fetch'], cwd=mirrordir, log_initiation=False)
- else:
- fetch_components = []
-
- global_patches_meta = self._resolve_component_meta(self.manifest['patches'])
- snapshot['patches'] = global_patches_meta
+ global_patches_meta = self._resolve_component_meta(self.snapshot['patches'])
+ self.snapshot['patches'] = global_patches_meta
(keytype, uri) = vcs.parse_src_key(global_patches_meta['src'])
mirrordir = vcs.ensure_vcs_mirror(self.mirrordir, keytype, uri, global_patches_meta['branch'])
if args.fetch_patches:
component['revision'] = revision
src_db = self.get_src_snapshot_db()
- path = src_db.store(snapshot)
+ path = src_db.store(self.snapshot)
log("Source snapshot: %s" % (path, ))
builtins.register(OstbuildResolve)
+++ /dev/null
-# Copyright (C) 2011,2012 Colin Walters <walters@verbum.org>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# ostbuild-compile-one-make wraps systems that implement the GNOME build API:
-# http://people.gnome.org/~walters/docs/build-api.txt
-
-import os,sys,stat,subprocess,tempfile,re,shutil
-import argparse
-from StringIO import StringIO
-import json
-
-from . import builtins
-from .ostbuildlog import log, fatal
-from .subprocess_helpers import run_sync, run_sync_get_output
-from . import buildutil
-
-class OstbuildStatus(builtins.Builtin):
- name = "status"
- short_description = "Show build status"
-
- def __init__(self):
- builtins.Builtin.__init__(self)
-
- def execute(self, argv):
- parser = argparse.ArgumentParser(description=self.short_description)
- parser.add_argument('--manifest', required=True)
-
- args = parser.parse_args(argv)
-
- self.parse_config()
- self.parse_components_and_targets()
-
- for name,component in self.components.iteritems():
- buildname = 'components/%s' % (name, )
- build_revision = run_sync_get_output(['ostree', '--repo=' + self.repo,
- 'show',
- '--print-metadata-key=ostbuild-artifact-version',
- buildname],
- none_on_error=True)
- if build_revision is None:
- build_revision = '(not built)'
- if build_revision != component['revision']:
- build_status = '(needs build)'
- else:
- build_status = 'ok'
- sys.stdout.write('{:<40} {:<95} {:<10}\n'.format(name,
- build_revision, build_status))
-
-builtins.register(OstbuildStatus)
return meta
def get_component(self, name):
- assert self.repo is not None
assert self.snapshot is not None
for component in self.snapshot['components']:
if component['name'] == name:
from . import builtin_compile_one
from . import builtin_deploy_root
from . import builtin_deploy_qemu
+from . import builtin_git_mirror
from . import builtin_import_tree
+from . import builtin_init
from . import builtin_run_qemu
-from . import builtin_git_mirror
-from . import builtin_pull_components
+from . import builtin_prefix
from . import builtin_privhelper_deploy_qemu
from . import builtin_privhelper_run_qemu
-from . import builtin_prefix
+from . import builtin_pull_components
from . import builtin_resolve
-from . import builtin_modify_snapshot
-from . import builtin_init
-from . import builtin_status
def usage(ecode):
print "Builtins:"